Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Mutations and simplify Templates #578

Merged
merged 57 commits into from
Oct 18, 2022

Conversation

ealmloff
Copy link
Member

@ealmloff ealmloff commented Oct 6, 2022

This moves templates to only exist in the vdom instead of the renderer. Templates exist to speed up diffing in the vdom, and to speed up node creation via cloning. This shifts templates from explicitly existing in renderers to being used via a CloneNode, NextSibling, FirstChild, etc. This simplifies the implementation and provides better performance for the web renderer.

  • Also exploring non-stack based mutations as they are less useful with templates

todo:

  • new edits
  • web implementation
  • desktop implementation
  • native-core implementation
  • tui implementation
  • update native core and dioxus tests
  • Fix multiple iterators that are children of the same element

benchmarks:
Screenshot 2022-10-08 160106

@ealmloff ealmloff marked this pull request as ready for review October 9, 2022 03:17
@ealmloff ealmloff marked this pull request as draft October 9, 2022 23:31
@ealmloff ealmloff marked this pull request as ready for review October 10, 2022 01:21
@jkelleyrtp jkelleyrtp added this to the 0.3 Release milestone Oct 10, 2022
@jkelleyrtp jkelleyrtp added breaking This is a breaking change blocker blocking its associated milestone labels Oct 10, 2022
@ealmloff ealmloff marked this pull request as draft October 15, 2022 00:54
@ealmloff ealmloff marked this pull request as ready for review October 16, 2022 13:40
@jkelleyrtp jkelleyrtp enabled auto-merge (squash) October 18, 2022 21:41
@jkelleyrtp jkelleyrtp disabled auto-merge October 18, 2022 21:42
@jkelleyrtp jkelleyrtp merged commit 3b7b503 into DioxusLabs:master Oct 18, 2022
@ealmloff ealmloff deleted the rework-templates branch October 18, 2022 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocker blocking its associated milestone breaking This is a breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants